// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20180801

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json"
)

// Predefined struct for user
type DescribeMCDNBillDataRequestParams struct {
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05Z`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05Z`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，单位分钟，可取值5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 查询域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`

	// 如302等
	Type []*string `json:"Type,omitnil,omitempty" name:"Type"`

	// 如中国大陆
	RegionNames []*string `json:"RegionNames,omitnil,omitempty" name:"RegionNames"`
}

type DescribeMCDNBillDataRequest struct {
	*tchttp.BaseRequest
	
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05Z`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05Z`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，单位分钟，可取值5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 查询域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`

	// 如302等
	Type []*string `json:"Type,omitnil,omitempty" name:"Type"`

	// 如中国大陆
	RegionNames []*string `json:"RegionNames,omitnil,omitempty" name:"RegionNames"`
}

func (r *DescribeMCDNBillDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNBillDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Granularity")
	delete(f, "DomainNames")
	delete(f, "Type")
	delete(f, "RegionNames")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNBillDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNBillDataResponseParams struct {
	// 流量、带宽明细数据
	// 注意：此字段可能返回 null，表示取不到有效值。
	DataInfoList []*MCDNDataInfo `json:"DataInfoList,omitnil,omitempty" name:"DataInfoList"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNBillDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNBillDataResponseParams `json:"Response"`
}

func (r *DescribeMCDNBillDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNBillDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNDistrictIspDataRequestParams struct {
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，可选值：5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 运营商，可选：中国移动、中国联通、中国电信、其他
	Isp *string `json:"Isp,omitnil,omitempty" name:"Isp"`

	// 区域，可选：中国大陆省市名称，如北京市、广东省、内蒙古自治区等
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// 域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`
}

type DescribeMCDNDistrictIspDataRequest struct {
	*tchttp.BaseRequest
	
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，可选值：5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 运营商，可选：中国移动、中国联通、中国电信、其他
	Isp *string `json:"Isp,omitnil,omitempty" name:"Isp"`

	// 区域，可选：中国大陆省市名称，如北京市、广东省、内蒙古自治区等
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// 域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`
}

func (r *DescribeMCDNDistrictIspDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNDistrictIspDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Granularity")
	delete(f, "Isp")
	delete(f, "Province")
	delete(f, "DomainNames")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNDistrictIspDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNDistrictIspDataResponseParams struct {
	// 数据结果
	DataInfoList []*MCDNDistrictIspDataInfo `json:"DataInfoList,omitnil,omitempty" name:"DataInfoList"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNDistrictIspDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNDistrictIspDataResponseParams `json:"Response"`
}

func (r *DescribeMCDNDistrictIspDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNDistrictIspDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNDomainsRequestParams struct {
	// 域名状态
	DomainStatus *uint64 `json:"DomainStatus,omitnil,omitempty" name:"DomainStatus"`

	// 查询结果偏移
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 限制返回结果条数
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeMCDNDomainsRequest struct {
	*tchttp.BaseRequest
	
	// 域名状态
	DomainStatus *uint64 `json:"DomainStatus,omitnil,omitempty" name:"DomainStatus"`

	// 查询结果偏移
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 限制返回结果条数
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeMCDNDomainsRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNDomainsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "DomainStatus")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNDomainsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNDomainsResponseParams struct {
	// 域名列表数量
	// 注意：此字段可能返回 null，表示取不到有效值。
	AllCount *uint64 `json:"AllCount,omitnil,omitempty" name:"AllCount"`

	// 域名信息列表
	// 注意：此字段可能返回 null，表示取不到有效值。
	DomainList []*MCDNDomainInfo `json:"DomainList,omitnil,omitempty" name:"DomainList"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNDomainsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNDomainsResponseParams `json:"Response"`
}

func (r *DescribeMCDNDomainsResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNDomainsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNForbidTasksRequestParams struct {
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

type DescribeMCDNForbidTasksRequest struct {
	*tchttp.BaseRequest
	
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

func (r *DescribeMCDNForbidTasksRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNForbidTasksRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "TaskId")
	delete(f, "Keyword")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNForbidTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNForbidTasksResponseParams struct {
	// 该查询条件总共条目数。
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// 封禁历史记录
	// 注意：此字段可能返回 null，表示取不到有效值。
	ForbidLogs []*MCDNForbidTask `json:"ForbidLogs,omitnil,omitempty" name:"ForbidLogs"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNForbidTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNForbidTasksResponseParams `json:"Response"`
}

func (r *DescribeMCDNForbidTasksResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNForbidTasksResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNLogDataRequestParams struct {
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，可选值：5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 运营商，可选：中国移动、中国联通、中国电信、其他
	Isp *string `json:"Isp,omitnil,omitempty" name:"Isp"`

	// 区域，可选：中国大陆省市名称，如北京市、广东省、内蒙古自治区等
	//
	// Deprecated: Province is deprecated.
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// 域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`

	// 类型，如302
	//
	// Deprecated: Type is deprecated.
	Type []*string `json:"Type,omitnil,omitempty" name:"Type"`
}

type DescribeMCDNLogDataRequest struct {
	*tchttp.BaseRequest
	
	// 开始时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 结束时间，UTC时间，时间格`2006-01-02T15:04:05+08:00`
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 粒度，可选值：5/60
	Granularity *uint64 `json:"Granularity,omitnil,omitempty" name:"Granularity"`

	// 运营商，可选：中国移动、中国联通、中国电信、其他
	Isp *string `json:"Isp,omitnil,omitempty" name:"Isp"`

	// 区域，可选：中国大陆省市名称，如北京市、广东省、内蒙古自治区等
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// 域名
	DomainNames []*string `json:"DomainNames,omitnil,omitempty" name:"DomainNames"`

	// 类型，如302
	Type []*string `json:"Type,omitnil,omitempty" name:"Type"`
}

func (r *DescribeMCDNLogDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNLogDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Granularity")
	delete(f, "Isp")
	delete(f, "Province")
	delete(f, "DomainNames")
	delete(f, "Type")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNLogDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNLogDataResponseParams struct {
	// 监控数据结果
	// 注意：此字段可能返回 null，表示取不到有效值。
	DataInfoList []*MCDNLogDataInfo `json:"DataInfoList,omitnil,omitempty" name:"DataInfoList"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNLogDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNLogDataResponseParams `json:"Response"`
}

func (r *DescribeMCDNLogDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNLogDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNOriginDataRequestParams struct {
	// 查询起始时间，如：2018-09-04 10:40:00，返回结果大于等于指定时间
	// 根据指定时间粒度不同，会进行向前归整，如 2018-09-04 10:40:00 在按 1 小时的时间粒度查询时，返回的第一个数据对应时间点为 2018-09-04 10:00:00
	// 起始时间与结束时间间隔小于等于 90 天
	// 示例值：2018-09-04 10:40:00
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 查询结束时间，如：2018-09-04 10:40:00，返回结果小于等于指定时间
	// 根据指定时间粒度不同，会进行向前归整，如 2018-09-04 10:40:00 在按 1 小时的时间粒度查询时，返回的最后一个数据对应时间点为 2018-09-04 10:00:00
	// 起始时间与结束时间间隔小于等于 90 天
	// 示例值：2018-09-04 10:40:00
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 指定查询指标，支持的类型有：
	// flux：回源流量，单位为 byte
	// bandwidth：回源带宽，单位为 bps
	// request：回源请求数，单位为 次
	// failRequest：回源失败请求数，单位为 次
	// failRate：回源失败率，单位为 %
	// statusCode：回源状态码，返回 2xx、3xx、4xx、5xx 汇总数据，单位为 个
	// 2xx：返回 2xx 回源状态码汇总及各 2 开头回源状态码数据，单位为 个
	// 3xx：返回 3xx 回源状态码汇总及各 3 开头回源状态码数据，单位为 个
	// 4xx：返回 4xx 回源状态码汇总及各 4 开头回源状态码数据，单位为 个
	// 5xx：返回 5xx 回源状态码汇总及各 5 开头回源状态码数据，单位为 个
	// 支持指定具体状态码查询，若未产生过，则返回为空
	// 示例值：flux
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// 指定查询域名列表，最多可一次性查询 30 个加速域名明细
	Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
}

type DescribeMCDNOriginDataRequest struct {
	*tchttp.BaseRequest
	
	// 查询起始时间，如：2018-09-04 10:40:00，返回结果大于等于指定时间
	// 根据指定时间粒度不同，会进行向前归整，如 2018-09-04 10:40:00 在按 1 小时的时间粒度查询时，返回的第一个数据对应时间点为 2018-09-04 10:00:00
	// 起始时间与结束时间间隔小于等于 90 天
	// 示例值：2018-09-04 10:40:00
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 查询结束时间，如：2018-09-04 10:40:00，返回结果小于等于指定时间
	// 根据指定时间粒度不同，会进行向前归整，如 2018-09-04 10:40:00 在按 1 小时的时间粒度查询时，返回的最后一个数据对应时间点为 2018-09-04 10:00:00
	// 起始时间与结束时间间隔小于等于 90 天
	// 示例值：2018-09-04 10:40:00
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 指定查询指标，支持的类型有：
	// flux：回源流量，单位为 byte
	// bandwidth：回源带宽，单位为 bps
	// request：回源请求数，单位为 次
	// failRequest：回源失败请求数，单位为 次
	// failRate：回源失败率，单位为 %
	// statusCode：回源状态码，返回 2xx、3xx、4xx、5xx 汇总数据，单位为 个
	// 2xx：返回 2xx 回源状态码汇总及各 2 开头回源状态码数据，单位为 个
	// 3xx：返回 3xx 回源状态码汇总及各 3 开头回源状态码数据，单位为 个
	// 4xx：返回 4xx 回源状态码汇总及各 4 开头回源状态码数据，单位为 个
	// 5xx：返回 5xx 回源状态码汇总及各 5 开头回源状态码数据，单位为 个
	// 支持指定具体状态码查询，若未产生过，则返回为空
	// 示例值：flux
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// 指定查询域名列表，最多可一次性查询 30 个加速域名明细
	Domains []*string `json:"Domains,omitnil,omitempty" name:"Domains"`
}

func (r *DescribeMCDNOriginDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNOriginDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Metric")
	delete(f, "Domains")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNOriginDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNOriginDataResponseParams struct {
	// 数据统计的时间粒度，支持min, 5min, hour, day，分别表示1分钟，5分钟，1小时和1天的时间粒度。
	// 示例值：5min
	Interval *string `json:"Interval,omitnil,omitempty" name:"Interval"`

	// 各个资源的回源数据详情。
	Data []*ResourceOriginData `json:"Data,omitnil,omitempty" name:"Data"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNOriginDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNOriginDataResponseParams `json:"Response"`
}

func (r *DescribeMCDNOriginDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNOriginDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNPurgeTasksRequestParams struct {
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	//  	根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

type DescribeMCDNPurgeTasksRequest struct {
	*tchttp.BaseRequest
	
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	//  	根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

func (r *DescribeMCDNPurgeTasksRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNPurgeTasksRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "TaskId")
	delete(f, "Keyword")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNPurgeTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNPurgeTasksResponseParams struct {
	// 刷新任务状态
	// done：刷新成功
	// process：刷新中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 该查询条件总共条目数
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// 刷新历史记录
	// 注意：此字段可能返回 null，表示取不到有效值。
	PurgeLogs []*MCDNPurgeTask `json:"PurgeLogs,omitnil,omitempty" name:"PurgeLogs"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNPurgeTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNPurgeTasksResponseParams `json:"Response"`
}

func (r *DescribeMCDNPurgeTasksResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNPurgeTasksResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNPushTasksRequestParams struct {
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

type DescribeMCDNPushTasksRequest struct {
	*tchttp.BaseRequest
	
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

func (r *DescribeMCDNPushTasksRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNPushTasksRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "TaskId")
	delete(f, "Keyword")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNPushTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNPushTasksResponseParams struct {
	// 预热任务状态
	// done：预热成功
	// process：预热中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 该查询条件总共条目数。
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// 预热历史记录
	// 注意：此字段可能返回 null，表示取不到有效值。
	PushLogs []*MCDNPushTask `json:"PushLogs,omitnil,omitempty" name:"PushLogs"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNPushTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNPushTasksResponseParams `json:"Response"`
}

func (r *DescribeMCDNPushTasksResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNPushTasksResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNResumeTasksRequestParams struct {
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

type DescribeMCDNResumeTasksRequest struct {
	*tchttp.BaseRequest
	
	// 分页查询偏移量，默认为 0
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// 分页查询限制数目，默认为 50
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// 根据时间区间查询时，填充开始时间
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 根据时间区间查询时，填充结束时间
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 需要查询的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 以http(s):// 开头完整 URL 过滤
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`
}

func (r *DescribeMCDNResumeTasksRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNResumeTasksRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "TaskId")
	delete(f, "Keyword")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMCDNResumeTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMCDNResumeTasksResponseParams struct {
	// 该查询条件总共条目数。
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// 解封历史记录
	// 注意：此字段可能返回 null，表示取不到有效值。
	ResumeLogs []*MCDNResumeTask `json:"ResumeLogs,omitnil,omitempty" name:"ResumeLogs"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMCDNResumeTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMCDNResumeTasksResponseParams `json:"Response"`
}

func (r *DescribeMCDNResumeTasksResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMCDNResumeTasksResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePCDNLogDownloadListRequestParams struct {
	// 查询开始时间，支持最近三个月的查询，查询时间最长跨度为一个月。
	// 
	// 使用 UTC 格式时间，
	// 例如：2019-01-08T10:00:00Z。
	// 注意：北京时间值为 UTC 时间值 + 8 小时，格式按照 ISO 8601 标准表示，详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 查询结束时间，支持最近三个月的查询，查询时间最长跨度为一个月。
	// 
	// 使用 UTC 格式时间，
	// 例如：2019-01-08T10:00:00Z。
	// 注意：北京时间值为 UTC 时间值 + 8 小时，格式按照 ISO 8601 标准表示，详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 播放域名列表，如果不传默认查询全体域名的日志数据。
	PlayDomains []*string `json:"PlayDomains,omitnil,omitempty" name:"PlayDomains"`
}

type DescribePCDNLogDownloadListRequest struct {
	*tchttp.BaseRequest
	
	// 查询开始时间，支持最近三个月的查询，查询时间最长跨度为一个月。
	// 
	// 使用 UTC 格式时间，
	// 例如：2019-01-08T10:00:00Z。
	// 注意：北京时间值为 UTC 时间值 + 8 小时，格式按照 ISO 8601 标准表示，详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// 查询结束时间，支持最近三个月的查询，查询时间最长跨度为一个月。
	// 
	// 使用 UTC 格式时间，
	// 例如：2019-01-08T10:00:00Z。
	// 注意：北京时间值为 UTC 时间值 + 8 小时，格式按照 ISO 8601 标准表示，详见 [ISO 日期格式说明](https://cloud.tencent.com/document/product/266/11732#I)。
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// 播放域名列表，如果不传默认查询全体域名的日志数据。
	PlayDomains []*string `json:"PlayDomains,omitnil,omitempty" name:"PlayDomains"`
}

func (r *DescribePCDNLogDownloadListRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePCDNLogDownloadListRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "PlayDomains")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribePCDNLogDownloadListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribePCDNLogDownloadListResponseParams struct {
	// PCDN日志下载信息。
	LogInfoList []*PCDNLogInfo `json:"LogInfoList,omitnil,omitempty" name:"LogInfoList"`

	// 返回总条目数。
	TotalNums *uint64 `json:"TotalNums,omitnil,omitempty" name:"TotalNums"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribePCDNLogDownloadListResponse struct {
	*tchttp.BaseResponse
	Response *DescribePCDNLogDownloadListResponseParams `json:"Response"`
}

func (r *DescribePCDNLogDownloadListResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribePCDNLogDownloadListResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ForbidMCDNUrlRequestParams struct {
	// 要封禁的URL
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

type ForbidMCDNUrlRequest struct {
	*tchttp.BaseRequest
	
	// 要封禁的URL
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

func (r *ForbidMCDNUrlRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ForbidMCDNUrlRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Urls")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ForbidMCDNUrlRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ForbidMCDNUrlResponseParams struct {
	// 此批提交的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ForbidMCDNUrlResponse struct {
	*tchttp.BaseResponse
	Response *ForbidMCDNUrlResponseParams `json:"Response"`
}

func (r *ForbidMCDNUrlResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ForbidMCDNUrlResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type MCDNData struct {
	// 查询指定的指标名称：
	// flux：流量，单位为 byte
	// bandwidth：带宽，单位为 bps
	// request：请求数，单位为 次
	// fluxHitRate：流量命中率，单位为 %
	// statusCode：状态码，返回 2XX、3XX、4XX、5XX 汇总数据，单位为 个
	// 2XX：返回 2XX 状态码汇总及各 2 开头状态码数据，单位为 个
	// 3XX：返回 3XX 状态码汇总及各 3 开头状态码数据，单位为 个
	// 4XX：返回 4XX 状态码汇总及各 4 开头状态码数据，单位为 个
	// 5XX：返回 5XX 状态码汇总及各 5 开头状态码数据，单位为 个
	// 或指定查询的某一具体状态码
	// 注意：此字段可能返回 null，表示取不到有效值。
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// 明细数据组合
	// 注意：此字段可能返回 null，表示取不到有效值。
	DetailData []*TimestampData `json:"DetailData,omitnil,omitempty" name:"DetailData"`

	// 汇总数据组合
	// 注意：此字段可能返回 null，表示取不到有效值。
	SummarizedData *SummarizedData `json:"SummarizedData,omitnil,omitempty" name:"SummarizedData"`
}

type MCDNDataInfo struct {
	// 流量，单位MB
	// 
	// 注意：此字段可能返回 null，表示取不到有效值。
	Flux *float64 `json:"Flux,omitnil,omitempty" name:"Flux"`

	// 时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	Time *string `json:"Time,omitnil,omitempty" name:"Time"`

	// 带宽，单位Mbps
	// 注意：此字段可能返回 null，表示取不到有效值。
	Bandwidth *float64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`
}

type MCDNDistrictIspDataInfo struct {
	// 时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	Time *string `json:"Time,omitnil,omitempty" name:"Time"`

	// 省份
	// 注意：此字段可能返回 null，表示取不到有效值。
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// 运营商
	// 注意：此字段可能返回 null，表示取不到有效值。
	Isp *string `json:"Isp,omitnil,omitempty" name:"Isp"`

	// 流量
	// 注意：此字段可能返回 null，表示取不到有效值。
	Flux *float64 `json:"Flux,omitnil,omitempty" name:"Flux"`

	// 带宽
	// 注意：此字段可能返回 null，表示取不到有效值。
	Bandwidth *float64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// 请求数
	// 注意：此字段可能返回 null，表示取不到有效值。
	Request *int64 `json:"Request,omitnil,omitempty" name:"Request"`

	// 200状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status200 *int64 `json:"Status200,omitnil,omitempty" name:"Status200"`

	// 206状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status206 *int64 `json:"Status206,omitnil,omitempty" name:"Status206"`

	// 302状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status302 *int64 `json:"Status302,omitnil,omitempty" name:"Status302"`

	// 304状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status304 *int64 `json:"Status304,omitnil,omitempty" name:"Status304"`

	// 400状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status400 *int64 `json:"Status400,omitnil,omitempty" name:"Status400"`

	// 401状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status401 *int64 `json:"Status401,omitnil,omitempty" name:"Status401"`

	// 403状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status403 *int64 `json:"Status403,omitnil,omitempty" name:"Status403"`

	// 404状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status404 *int64 `json:"Status404,omitnil,omitempty" name:"Status404"`

	// 405状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status405 *int64 `json:"Status405,omitnil,omitempty" name:"Status405"`

	// 408状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status408 *int64 `json:"Status408,omitnil,omitempty" name:"Status408"`

	// 200状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status416 *int64 `json:"Status416,omitnil,omitempty" name:"Status416"`

	// 424状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status424 *int64 `json:"Status424,omitnil,omitempty" name:"Status424"`

	// 499状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status499 *int64 `json:"Status499,omitnil,omitempty" name:"Status499"`

	// 500状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status500 *int64 `json:"Status500,omitnil,omitempty" name:"Status500"`

	// 501状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status501 *int64 `json:"Status501,omitnil,omitempty" name:"Status501"`

	// 502状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status502 *int64 `json:"Status502,omitnil,omitempty" name:"Status502"`

	// 503状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status503 *int64 `json:"Status503,omitnil,omitempty" name:"Status503"`

	// 504状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status504 *int64 `json:"Status504,omitnil,omitempty" name:"Status504"`

	// 505状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status505 *int64 `json:"Status505,omitnil,omitempty" name:"Status505"`
}

type MCDNDomainInfo struct {
	// 域名
	// 注意：此字段可能返回 null，表示取不到有效值。
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// 域名状态
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// 创建时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type MCDNForbidTask struct {
	// 封禁任务状态
	// done：封禁成功
	// process：封禁中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 封禁任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 封禁 URL
	Url *string `json:"Url,omitnil,omitempty" name:"Url"`

	// 封禁任务提交时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type MCDNLogDataInfo struct {
	// 时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	Time *string `json:"Time,omitnil,omitempty" name:"Time"`

	// 流量
	// 注意：此字段可能返回 null，表示取不到有效值。
	Flux *float64 `json:"Flux,omitnil,omitempty" name:"Flux"`

	// 带宽
	// 注意：此字段可能返回 null，表示取不到有效值。
	Bandwidth *float64 `json:"Bandwidth,omitnil,omitempty" name:"Bandwidth"`

	// 请求数
	// 注意：此字段可能返回 null，表示取不到有效值。
	Request *int64 `json:"Request,omitnil,omitempty" name:"Request"`

	// 回源流量
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceFlux *float64 `json:"BackSourceFlux,omitnil,omitempty" name:"BackSourceFlux"`

	// 回源带宽
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceBandwidth *float64 `json:"BackSourceBandwidth,omitnil,omitempty" name:"BackSourceBandwidth"`

	// 回源请求数
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceRequest *int64 `json:"BackSourceRequest,omitnil,omitempty" name:"BackSourceRequest"`

	// 2xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status2Xx *int64 `json:"Status2Xx,omitnil,omitempty" name:"Status2Xx"`

	// 3xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status3Xx *int64 `json:"Status3Xx,omitnil,omitempty" name:"Status3Xx"`

	// 4xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status4Xx *int64 `json:"Status4Xx,omitnil,omitempty" name:"Status4Xx"`

	// 5xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	Status5Xx *int64 `json:"Status5Xx,omitnil,omitempty" name:"Status5Xx"`

	// 回源场景下2xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceStatus2Xx *int64 `json:"BackSourceStatus2Xx,omitnil,omitempty" name:"BackSourceStatus2Xx"`

	// 回源场景下3xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceStatus3Xx *int64 `json:"BackSourceStatus3Xx,omitnil,omitempty" name:"BackSourceStatus3Xx"`

	// 回源场景下4xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceStatus4Xx *int64 `json:"BackSourceStatus4Xx,omitnil,omitempty" name:"BackSourceStatus4Xx"`

	// 回源场景下5xx状态码的统计
	// 注意：此字段可能返回 null，表示取不到有效值。
	BackSourceStatus5Xx *int64 `json:"BackSourceStatus5Xx,omitnil,omitempty" name:"BackSourceStatus5Xx"`

	// 命中率
	// 注意：此字段可能返回 null，表示取不到有效值。
	HitRate *float64 `json:"HitRate,omitnil,omitempty" name:"HitRate"`
}

type MCDNPurgeTask struct {
	// 刷新任务状态
	// done：刷新成功
	// process：刷新中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 刷新任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 刷新 URL
	Url *string `json:"Url,omitnil,omitempty" name:"Url"`

	// 刷新任务提交时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type MCDNPushTask struct {
	// 预热任务状态
	// done：预热成功
	// process：预热中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 预热任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 预热 URL
	Url *string `json:"Url,omitnil,omitempty" name:"Url"`

	// 预热任务提交时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type MCDNResumeTask struct {
	// 解封任务状态
	// done：解封成功
	// process：解封中
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// 解封任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 解封 URL
	Url *string `json:"Url,omitnil,omitempty" name:"Url"`

	// 解封任务提交时间
	// 注意：此字段可能返回 null，表示取不到有效值。
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type PCDNLogInfo struct {
	// 日志文件名。
	LogName *string `json:"LogName,omitnil,omitempty" name:"LogName"`

	// 日志下载地址。
	LogUrl *string `json:"LogUrl,omitnil,omitempty" name:"LogUrl"`

	// 日志生成时间。
	LogTime *string `json:"LogTime,omitnil,omitempty" name:"LogTime"`

	// 日志文件大小，单位字节Byte。
	FileSize *uint64 `json:"FileSize,omitnil,omitempty" name:"FileSize"`
}

// Predefined struct for user
type PurgeMCDNUrlsCacheRequestParams struct {
	// 待刷新的MCDN资源
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

type PurgeMCDNUrlsCacheRequest struct {
	*tchttp.BaseRequest
	
	// 待刷新的MCDN资源
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

func (r *PurgeMCDNUrlsCacheRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PurgeMCDNUrlsCacheRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Urls")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "PurgeMCDNUrlsCacheRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PurgeMCDNUrlsCacheResponseParams struct {
	// 此批提交的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type PurgeMCDNUrlsCacheResponse struct {
	*tchttp.BaseResponse
	Response *PurgeMCDNUrlsCacheResponseParams `json:"Response"`
}

func (r *PurgeMCDNUrlsCacheResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PurgeMCDNUrlsCacheResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PushMCDNUrlsCacheRequestParams struct {
	// 待预热的url资源
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

type PushMCDNUrlsCacheRequest struct {
	*tchttp.BaseRequest
	
	// 待预热的url资源
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

func (r *PushMCDNUrlsCacheRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PushMCDNUrlsCacheRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Urls")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "PushMCDNUrlsCacheRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PushMCDNUrlsCacheResponseParams struct {
	// 此批提交的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type PushMCDNUrlsCacheResponse struct {
	*tchttp.BaseResponse
	Response *PushMCDNUrlsCacheResponseParams `json:"Response"`
}

func (r *PushMCDNUrlsCacheResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *PushMCDNUrlsCacheResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type ResourceOriginData struct {
	// 资源名称，根据查询条件不同分为以下几类：
	// 具体域名：表示该域名明细数据
	// multiDomains：表示多域名汇总明细数据
	// 项目 ID：指定项目查询时，显示为项目 ID
	// all：账号维度明细数据
	// 注意：此字段可能返回 null，表示取不到有效值。
	Resource *string `json:"Resource,omitnil,omitempty" name:"Resource"`

	// 回源数据详情
	// 注意：此字段可能返回 null，表示取不到有效值。
	OriginData []*MCDNData `json:"OriginData,omitnil,omitempty" name:"OriginData"`
}

// Predefined struct for user
type ResumeMCDNUrlRequestParams struct {
	// 要封禁的URL
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

type ResumeMCDNUrlRequest struct {
	*tchttp.BaseRequest
	
	// 要封禁的URL
	Urls []*string `json:"Urls,omitnil,omitempty" name:"Urls"`
}

func (r *ResumeMCDNUrlRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResumeMCDNUrlRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Urls")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResumeMCDNUrlRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResumeMCDNUrlResponseParams struct {
	// 此批提交的任务 ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ResumeMCDNUrlResponse struct {
	*tchttp.BaseResponse
	Response *ResumeMCDNUrlResponseParams `json:"Response"`
}

func (r *ResumeMCDNUrlResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ResumeMCDNUrlResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type SummarizedData struct {
	// 汇总方式，存在以下几种：
	// sum：累加求和
	// max：最大值，带宽模式下，采用 5 分钟粒度汇总数据，计算峰值带宽
	// avg：平均值
	// 注意：此字段可能返回 null，表示取不到有效值。
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// 汇总后的数据值
	// 注意：此字段可能返回 null，表示取不到有效值。
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`
}

type TimestampData struct {
	// 数据统计时间点，采用向前汇总模式
	// 以 5 分钟粒度为例，13:35:00 时间点代表的统计数据区间为 13:35:00 至 13:39:59
	// 注意：此字段可能返回 null，表示取不到有效值。
	Time *string `json:"Time,omitnil,omitempty" name:"Time"`

	// 	数据值
	// 注意：此字段可能返回 null，表示取不到有效值。
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`
}